The present invention relates to network communications and more particularly, to generating data forwarding decisions in a network switch.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate 16 destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Additionally, due to increased network throughput requirements, increasing the speed with which data is transmitted to its destination is crucial to the overall operation of the switch.
Typical prior art systems employing fixed address tables employ a single logic device to process the data frames and perform all the tasks necessary to generate a frame forwarding decision. A drawback with utilizing a single logic device to perform all the processing tasks is the difficulty in implementing changes in any one part of the logic without affecting other parts of the logic. Another drawback with utilizing a single logic device to perform all the processing tasks associated with generating data forwarding decisions is the difficulty in meeting the demands of a network requiring high data throughput. That is, the single logic device is often unable to process multiple frames received from a plurality of ports and generate the data forwarding information within the desired time limit.
There exists a need for a network switch that employs a modular decision making engine that facilitates changes to the decision making logic.
There is also a need for a network switch that includes a decision making engine configured to perform its processing independently from other logic functions on the switch.
These and other needs are met by the present invention, where a multiport switch includes a decision making engine used to make frame forwarding decisions. The decision making engine is designed in a modular, pipelined fashion so that multiple frames may be processed simultaneously. The switch is also configured to perform various other logic functions independently from the decision making engine.
According to one aspect of the invention, a multiport switch is configured to control the communication of data frames between stations. The switch includes a plurality of receive devices corresponding to ports on the multiport switch with each of the receive devices configured to receive data frames and transmit the data frames on an internal bus to an external memory interface. The switch also includes a plurality of queues corresponding to ports on the multiport switch with each of the plurality of queues configured to store frame header information and an address table for storing address information and data forwarding information. The switch further includes a decision making engine configured to search the programmable address table and generate data forwarding information for a data frame. The decision making engine is configured to process frame header information from the plurality of queues simultaneously with the storing of frame header information to the plurality of queues.
Another aspect of the present invention provides a method for generating data forwarding information in a multiport switch that controls communication of data frames between stations. The method includes receiving data frames at a plurality of receive devices and transmitting the data frames to an external memory interface. The method also includes writing frame header information from the data frames to a plurality of queues corresponding to the plurality of receive devices. The method further includes processing frame header information stored in the plurality of queues to generate data forwarding information. The processing step is performed independently from the writing step.
Other advantages and features of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.